//用于管理news模块的小仓库
import { defineStore } from 'pinia'  //引入创建pinia的方法

import { reqGetNewsList, reqGetRecommendedNews, reqGetTrends } from '@/api'  //引入发送请求获取数据的方法

export const useNewsStore = defineStore('news', {
    //state：仓库存储数据的地方
    state: () => ({
        newsList: [],    //新闻列表数据
        newsRecommended: []  //新闻推荐数据
    }),

    //action：处理action，可以书写自己的业务逻辑,可以直接修改state
    actions: {
        //新闻列表数据
        async getNewsList() {
            let result = await reqGetNewsList()
            if (result.code == 200) {
                this.newsList = result.data
            }
        },
        //行业动态数据
        async getTrends() {
            let result = await reqGetTrends()
            if (result.code == 200) {
                this.newsList = result.data
            }
        },
        //新闻推荐数据
        async getNewsRecommended() {
            let result = await reqGetRecommendedNews()
            if (result.code == 200) {
                this.newsRecommended = result.data
            }
        }
    },

    //getters：可以理解为计算属性，用于简化仓库属性。让组件获取仓库数据更便捷
    getters: {
        homeNewsList(state) {
            return state.newsList.splice(0, 3)
        }
    }
})